The present invention is directed to providing network computing services. More particularly, the present invention provides a general mechanism for enabling Intelligent Network services.
The power of personal computers has increased exponentially over the past several years. This increase in personal computer power is partially due to advances in central processing units (CPU""s) which manage the flow of information within personal computers. Each new generation of CPU""s is able to process more instructions per unit time than the previous generation. The number and types of services available to a personal computer user has increased in proportion to the increased speed of CPU""s.
In addition to the development of faster CPU""s, connecting computers together in networks has also increased the number and types of services which are available to personal computer users. A network may be defined as a connected group of computers which allows users to share information. Additional services become available to personal computer users when networks of computers are connected to each other.
A computer connected to one network may exchange data with a computer connected to another network by encapsulating data into packets and transmitting the packets along wired or wireless connections between the networks. Currently, many wired networks are connected through nodes, such as routers, which perform the basic task of forwarding packets to destination networks. Sometimes nodes perform a limited amount of processing on received packets, but current nodes lack the ability to act intelligently. Intelligent activity in a computer network increases the number and types of services which are available to network (end system) computers. Intelligent Network services add value to communication between end system computers and other computers by analyzing requests for network services and altering these requests, if necessary, to ensure the most efficient use of network resources.
A socket redirector is a known layer of software which may redirect data from one socket to another socket and is therefore a partially enabling mechanism for Intelligent Network services. A socket is a known data structure which may be used to create a communication channel for transmitting information among network computers and their application programs. Support of sockets is usually provided with a computer operating system (e.g., Windows 95/NT or UNIX). Although sockets may be associated with a variety of communication protocols, we will focus on the Internet Protocol (IP) in the remainder of this document.
As mentioned, application programs on network computers may communicate using sockets. A socket call is a procedure executed by an application program to create or use a socket. When an application program creates a socket to send information to another application program, that socket is identified with a destination address and port number. For example, some application programs on network servers support Internet Web sites. Typically, an Internet user uses a networked computer running an application program (such as a Web browser) to interact with Internet Web sites. To establish a connection between the Web site application program running on the server and the Web browser application program running on the Internet user""s computer, each application program first creates a socket. Each created socket is identified with an address and port number. Next, the Web browser application program sends a connection request across the Internet to the Web site application program. This connection request includes the address and port number of the socket which corresponds to the desired Web site. The connection request also includes the source (Web browser) address and port number. Once the two application programs have exchanged the addresses and port numbers for the sockets each will use, the two application programs may exchange packets of data through the identified sockets. Various socket types exist including so-called datagram sockets, where connection requests are not a necessary precursor to direct communication.
In a client/server computer network, a socket redirector may be installed on the client and/or the server. The socket redirector intercepts socket calls before these requests are sent to the network layer of the local computer. The socket redirector may modify various parameters included within an intercepted socket call if the appropriate information is provided to the socket redirector. The socket redirector may use this information to modify the socket call in order to redirect a client request to a xe2x80x9cbetterxe2x80x9d source than the originally requested source.
Unfortunately current socket redirector arrangements are unable to support Intelligent Network services by allowing users to establish communication between end system computers and other computers while receiving added value to the communication from highly specialized and reliable database systems.
In view of the above, it can be appreciated that there is a need for a system which enables Intelligent Network services.
The present invention provides a general mechanism for enabling Intelligent Network services. A system according to an embodiment of the present invention includes a socket redirector on a client computer interacting with a remote database. Examples of Intelligent Network services enabled by this socket redirector arrangement include the following: 1) improved socket call routing between an application program executed by the redirector equipped computer and an application program executed by another computer, 2) improved multicast to unicast address translation, and 3) the establishment of xe2x80x9c800 telephone numberxe2x80x9d type services for the Internet.